#include "LoginDialog.h"
#include <QDebug>
#include <QMessageBox>

LoginDialog::LoginDialog()
    :ui(new Ui::LoginDialog)
{
    // 界面初始化
    ui->setupUi(this);

    // 槽函数连接
    QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(Onaccepted()));
    QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(OnRejected()));
}

LoginDialog::~LoginDialog()
{
    delete ui;
}

void LoginDialog::Onaccepted()
{
    // 假设用户名/密码是：chb/123456
    if(ui->m_usernameEdit->text() == "chb" && ui->m_passwdEdit->text() == "123456")
    {
        // 登录成功
        qDebug("登录成功");
        // close();    // 关闭父窗口
        QMessageBox msgBox(QMessageBox::Information,   // 图标风格
                           "Tips",                 // 窗口标题
                           "登陆成功",        // 提示的消息
                           QMessageBox::Ok,         // 按钮
                           this);                   // 父窗口指针
        if(msgBox.exec() == QMessageBox::Ok)
            close();
    }
    else
    {
        // 登录失败，弹出消息框
        QMessageBox msgBox(QMessageBox::Critical,   // 图标风格
                           "Error",                 // 窗口标题
                           "用户名或密码错误!",        // 提示的消息
                           QMessageBox::Ok,         // 按钮
                           this);                   // 父窗口指针

        // 显示消息提示框，进入事件循环
        msgBox.exec();
    }
}

void LoginDialog::OnRejected()
{
    QMessageBox msgBox(QMessageBox::Question,                   // 图标风格
                       "Tips",                                  // 窗口标题
                       "是否取消登录",                            // 提示的消息
                       QMessageBox::Yes | QMessageBox::No,      // 按钮
                       this);                                   // 父窗口指针

    // 显示消息提示框，进入事件循环，点击Yes或者No都会推出事件循环
    // 根据返回结果不同，执行不同动作
    if(msgBox.exec() == QMessageBox::Yes)
    {
        // 退出登录框
        close();
    }
    else
    {
        // 什么也不做，继续回到登录框
    }
}
